Auf Dokument zugreifen

Mit diesem kurzen Programm zeige ich dir, wie du an das im BDS gespeicherte Bild kommst und es auf dem Dynpro ausgeben kannst.

Eigene Bilder speicherst du mit der Transaktion OAER.

Info

Zu dem folgenden Programm musst du ein Dynpro mit CustomControl anlegen. Doppelklicke dazu auf “5000” bei der Anweisung CALL SCREEN 5000.

In der Elementliste des Dynpros trage zum Typ “OK” das Feld “SY-UCOMM” ein.

Ablauflogik

Die Ablauflogik sieht wie folgt aus:

PROCESS BEFORE OUTPUT.
MODULE STATUS_5000.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_5000.

Im Module “STATUS_5000” müssen Sie noch mit Doppelklick auf “5000” bei der Anweisung “SET PF-STATUS ‘5000’” den GUI-Status anlegen. Tragen Sie zu den Funktionscodes für den grünen Pfeil zurück, den gelben Pfeil nach oben und das rote Kreuz jeweils “BACK” ein.

Hinweis:
Zu einem BDS-Objekt (p_pic) können mehrere Objekte gespeichert werden. Die Methode GET_WITH_URL liefert in dem Fall mehrere URLs zurück.
Um Informationen zu den enthaltenen Dokumenten zu erhalten, benutzen Sie bitte die Methode cl_bds_document_set=>GET_INFO.

Ergebnis


Anzeige eines Bildes aus dem BDS

Code

REPORT  z_bds_pic_show.

PARAMETERS p_pic TYPE bds_typeid DEFAULT ‘ENJOYSAP_LOGO’.

START-OF-SELECTION.

*** Benötigte Variablen
DATA:
lref_cont TYPE REF TO cl_gui_custom_container,
lref_img  TYPE REF TO cl_gui_picture,
lt_url    TYPE TABLE OF bapiuri,
ls_url    TYPE          bapiuri.

IF lref_cont IS INITIAL.
*** Container erzeugen
*** Der Name des CustomControls auf dem Dynpro heisst “PICTURE”

CREATE OBJECT lref_cont
EXPORTING
container_name              = ‘PICTURE’ .
*** Picture Control erzeugen
CREATE OBJECT lref_img
EXPORTING
parent = lref_cont.
*** Ermitteln der URL zum Bild
CALL METHOD cl_bds_document_set=>get_with_url
EXPORTING
classname  = ‘PICTURES’
classtype  = ‘OT’
object_key = p_pic
CHANGING
uris       = lt_url.
*** Ermittelte URL lesen
READ TABLE lt_url INTO ls_url INDEX 1.
*** …und in das PictureControl laden
CALL METHOD lref_img->load_picture_from_url
EXPORTING
url    = ls_url-uri
EXCEPTIONS
OTHERS = 1.
ENDIF.

  CALL SCREEN 5000.

*&———————————————————————*
*&      Module  USER_COMMAND_5000  INPUT
*&———————————————————————*
MODULE user_command_5000 INPUT.

  IF sy-ucomm = ‘BACK’.
SET SCREEN 0. LEAVE SCREEN.
ENDIF.

ENDMODULE.                 ” USER_COMMAND_5000  INPUT

*&———————————————————————*
*&      Module  STATUS_5000  OUTPUT
*&———————————————————————*

MODULE status_5000 OUTPUT.

  SET PF-STATUS ‘5000’.

ENDMODULE.                 ” STATUS_5000  OUTPUT

 

Enno Wulff

Leave a Comment